package com.zw.mes.module.prodtaskmanager.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zw.mes.module.prodtaskmanager.entity.ProdOrd;
import lombok.Data;

import javax.persistence.Transient;
import java.util.Calendar;
import java.util.Date;


/**
 * 生产令表
 *
 * @author 徐一贺
 * @TableName prod_order
 */
@Data
public class ProdOrdModel extends ProdOrd {
    /**
     * 项目表主键id
     */
    private Integer proId;
    /**
     * 对内对外项目：1=对外，2=对内
     */
    private Integer proType;

    /**
     * 意向表主键id
     */
    private Integer preEnqId;


    /**
     * 项目等级
     */
    private Integer proClass;

    /**
     * 项目类别
     */
    private Integer prodType;
    /**
     * 类别：1是设备类，2是其他（普通）
     */
    private Integer prodTyp;

    /**
     * 项目名称
     */
    private String proName;

    /**
     * 需方
     */
    private String customer;

    /**
     * 安装地点
     */
    private String insSite;

    /**
     * 数量
     */
    private Integer proQty;

    /**
     * 单位
     */
    private String proUnit;

    /**
     * 特种设备类型
     */
    private Integer speEquipType;

    /**
     * 设计部门
     */
    private String designType;

    /**
     * 设计
     */
    private Integer design;

    /**
     * 材料
     */
    private Integer meteral;

    /**
     * 制造
     */
    private Integer manuf;

    /**
     * 包装
     */
    private Integer pack;

    /**
     * 运输
     */
    private Integer trans;

    /**
     * 安装
     */
    private Integer install;

    /**
     * 调试
     */
    private Integer debug;

    /**
     * 备品备件
     */
    private Integer spareParts;

    /**
     * 是否由技术部设计
     */
    private Integer designStatus;

    /**
     * 是否有生产
     */
    private Integer productStatus;

    /**
     * 制造范围
     */
    private String manufScope;

    /**
     * 是否有食宿
     */
    private Integer accommodate;

    /**
     * 是否有差旅
     */
    private Integer onBusiness;

    /**
     * 是否有吊车
     */
    private Integer crane;

    /**
     * 是否有保运
     */
    private Integer maintainInTest;

    /**
     * 包装要求
     */
    private String packReq;

    /**
     * 主要技术要求
     */
    private String mainTechReq;

    /**
     * 备注
     */
    private String remark;

    /**
     * 意向变更备注
     */
    private String preEnqChgRmk;

    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createDate;

    /**
     * 创建人
     */
    private String createName;

    /**
     * 项目取消标识 0=未取消；1=取消
     */
    private Integer proCancelMark;

    /**
     * 项目状态 1=待提交；2=已提交；3 = 审核中；4=已同意
     */
    private Integer proStatus;

    /**
     * 技术协议上传状态 1=已上传；2=未上传；3=不需要
     */
    private Integer proTechAgreement;

    /**
     * 是否发起验收 是否发起验收： 1=已发起；2=未发起
     */
    private Integer proCheckStatus;

    /**
     * 开始时间
     */
    @Transient
    private Date startTime;

    /**
     * 结束时间
     */
    @Transient
    private Date endTime;

    public void setEndTime(Date endTime) {
        if (endTime != null) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(endTime);
            cal.add(Calendar.DAY_OF_YEAR, 1);
            this.endTime = cal.getTime();
        }
    }

    /**
     * 排序
     **/
    @Transient
    private String sort;

    @Transient
    private String order;

    /**
     * 生产令名称
     */
    private String prodName;
    /**
     * 操作系统
     */
    private String os;
    /**
     * 浏览器
     */
    private String browser;
    /**
     * 变更原因
     */
    private String changeReason;

    /**
     * 行号
     */
    private Integer orderNo;
    /**
     * 是否是成本中心项目 0=不是，1=是
     */
    private Integer proCostType;
    /**
     * 是否可串料
     */
    private Integer isChange;
    /**
     * 生产状态多选传递
     */
    private String prodExeStaStr;
}